package com.gaojinqi.base.common.util;

import com.alibaba.fastjson.JSON;
import org.springframework.util.StringUtils;

import java.util.List;

/**
 * Json工具类
 *
 * @author gaojinqi
 * @version 1.0
 * @since 2020年04月22日
 */
public class JsonUtil {

    /**
     * 将对象转成字符串
     */
    public static <T> String toJSONString(T obj) {
        if (obj == null) {
            return null;
        }
        return JSON.toJSONString(obj);
    }

    /**
     * 将 List 转成字符串
     */
    public static <T> String toJSONString(List<T> obj) {
        if (obj == null) {
            return null;
        }
        return JSON.toJSONString(obj);
    }

    /**
     * 将 字符串 转回 对象
     *
     * @param clazz 对象类型
     */
    public static <T> T parseObject(String shotsnap, Class<T> clazz) {
        if (StringUtils.isEmpty(shotsnap)) {
            return null;
        }
        return JSON.parseObject(shotsnap, clazz);
    }

    /**
     * 将 字符串 转回 List
     *
     * @param clazz List 泛型对象类型
     */
    public static <T> List<T> parseList(String shotsnap, Class<T> clazz) {
        if (StringUtils.isEmpty(shotsnap)) {
            return null;
        }
        return JSON.parseArray(shotsnap, clazz);
    }

}
